Client—Server architecture is one of the network architectures that world is using widely, be it a domestic network or a global network. In the client server network architecture, the server may be capable of catering requests of clients from different geographical locations. In case of a vast network, where millions of people are connected to server through their client machines, the server may be running all the time.
In an Enterprise server, scalability and availability are the critical parameters. Server architectures cater this by managing multiple server instances. Each of the server instances are capable of executing the required/pre-defined functionalities, and may be configured to render a same result. The server instances load one or more core libraries (for e.g. shared libraries in Linux) for its execution.
When there is an update for the shared libraries, the conventional method is to bring down all the server instances and update the shared libraries. But this method brings down all the services and is time consuming, which is not appreciated. It may also be necessary to check for a suitable time slot when the load is low on the server. Another method is to use extra server nodes to cater the client requests. To deploy extra server nodes, server procurement, CPU/core procurement, memory requirement, networking infrastructure, licensing, maintenance cost, etc. may be necessary. But, in banks/organizations operating with economic constraints, deploying a new node involving large procurements and/or subscriptions for an alternate or extra nodes for ensuring continuity of service, may not be possible.
So, there is a need for a system which updates the shared libraries by overcoming the above mentioned problems.